﻿@page
@model ErrorModel
@{
    ViewData["Title"] = Model.Status switch {
        404 => "Not Found",
        403 => "Forbidden",
        _ => "Error."
    };
    ViewData["Message"] = Model.Status switch {
        404 => "This page does not exist.",
        403 => "You do not have access to this page.",
        _ => "An error occurred while processing your request."
    };
}

<h1 class="text-danger">Error @(Model.Code ?? Model.Status.ToString()).</h1>
<h2 class="text-danger">@ViewData["Message"]</h2>

@if (Model.Role != null)
{
    <p> 
        Requires <strong>@Model.Role</strong> Role
    </p>
}
@if (Model.Permission != null)
{
    <p> 
        Requires <strong>@Model.Permission</strong> Permission
    </p>
}
@if (Model.ShowRequestId)
{
    <p>
        <strong>Request ID:</strong> <code>@Model.RequestId</code>
    </p>
}

<h3>Development Mode</h3>
<p>
    Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
</p>
<p>
    <strong>The Development environment shouldn't be enabled for deployed applications.</strong>
    It can result in displaying sensitive information from exceptions to end users.
    For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
    and restarting the app.
</p>